package sy5_Structural_Pattern.adapter.objectAdapter;
/*
 * 使用对象适配器模式示例
 * 本例中的Target抽象类也可以使用接口代替，请读者完成。
 */

// 角色1：（被）适配者类
class Adaptee {
	public void specificRequest() {
		System.out.println("使用适配者功能...");
	}
}
// 角色2：目标接口
interface Target {
	public void request();
}
// 角色3：适配器类
class Adapter implements Target {
	private Adaptee adaptee;
	public Adapter(Adaptee adaptee) {
		this.adaptee = adaptee;
	}
	@Override
	public void request() {
		adaptee.specificRequest();
	}
}
public class Client {
	public static void main(String[] args) {
		// Client关联Target，面向抽象编程，构造器注入
		Target adapter = new Adapter(new Adaptee());
		adapter.request(); // 调用抽象方法
	}
}
